package cn.g31010.sip.component
{
	import mx.controls.Button;
	import mx.controls.TextInput;
	import flash.display.Sprite;
	import flash.net.NetConnection;
	import flash.net.NetStream;
	import flash.events.NetStatusEvent;
	import flash.events.MouseEvent;
	import flash.events.Event;
	//import flash.net.ObjectEncoding;

	import flash.media.Camera;
	import flash.media.Microphone;
	import flash.media.Video;

public class MinRecord extends Sprite

{

private var nc:NetConnection;

private var ns:NetStream;

private var rtmpNow:String;

private var msg:Boolean;

private var cam:Camera;

private var mic:Microphone;

private var vid1:Video;

private var recordBtn:Button;

private var stopBtn:Button;

private var textInput:TextInput;

//Constructor

function MinRecord ()

{

//NetConnection.defaultObjectEncoding = flash.net.ObjectEncoding.AMF0;

nc=new NetConnection();

nc.addEventListener (NetStatusEvent.NET_STATUS,checkConnect);

rtmpNow="rtmp://192.168.0.11/vid2/recordings";

//rtmpNow=”rtmp:/vid2″;

nc.connect (rtmpNow);

addMedia ();

addUI ();

recordBtn.addEventListener (MouseEvent.CLICK,startRecord);

stopBtn.addEventListener (MouseEvent.CLICK,stopRecord);

}

private function addMedia ():void
{
	cam=Camera.getCamera();
	cam.setMode (240,180,24);
	cam.setQuality (0,90);
	mic=Microphone.getMicrophone();
	vid1=new Video(cam.width,cam.height);
	vid1.attachCamera (cam);
	addChild (vid1);
	vid1.x=100;
	vid1.y=50;
}

private function addUI ():void

{

recordBtn=new Button();

recordBtn.label="Record";

recordBtn.x=100;

recordBtn.y=50+(cam.height) +5;

recordBtn.width=70;

addChild (recordBtn);

stopBtn=new Button();

stopBtn.label="Stop Record";

stopBtn.x=recordBtn.x+85;

stopBtn.y=recordBtn.y;

stopBtn.width=75;

addChild (stopBtn);

textInput=new TextInput();

textInput.x=recordBtn.x;

textInput.y=recordBtn.y + 30;

addChild (textInput);

}

private function checkConnect (e:NetStatusEvent):void

{

msg=(e.info.code=="NetConnection.Connect.Success");

if (msg)

{

ns = new NetStream(nc);

}

}

private function startRecord (e:Event):void

{

if (ns)

{

recordBtn.label="Recording";

ns.attachAudio (mic);

ns.attachCamera (cam);

ns.publish (textInput.text,"record");

}

}

private function stopRecord (e:Event):void

{

recordBtn.label="Record";

ns.close ();

}

}

}
